/**
 * @(#)LectorDir.java
 *
 * Clase de prueba que lee todo lo necesario para la BD
 *
 * @author Daniel
 * @version 00.1 2008/5/12
 */
import javax.swing.*;
import javax.imageio.*;
import java.io.*;
import java.util.*;
import java.awt.image.BufferedImage;

public class LectorDir extends JFrame{
	
	private JFileChooser chooser;
	private File directorio;
	private File[] archivos;

    public LectorDir() {
    	
    	setTitle("prueba");
		setSize(500, 400);		
    	chooser = new JFileChooser();    	    	
    }
    
    public void abrir()
    {
		chooser.setCurrentDirectory( new File(System.getProperty("user.dir")) );
		chooser.setMultiSelectionEnabled(false);
		chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
		int result = chooser.showOpenDialog(this);
		if(result == JFileChooser.CANCEL_OPTION)
		   return;
		
		directorio = chooser.getSelectedFile();		
		imprimeLista();
    }
    
    public void imprimeLista()
    {
    	/*
		FileFilter filtro = new FileFilter() {
			public boolean accept(File file) {
		 		return file.getName().toLowerCase().endsWith(extArch);
			}
		};
		*/
		ImageFilter filtro = new ImageFilter();
		
		archivos = directorio.listFiles(filtro);
		for (int i = 0; i< archivos.length; i++){
			System.out.println("-----------------------------------------");
			System.out.println("Nombre:" + archivos[i].getName());
			System.out.println("Path:" + archivos[i].getPath());
			System.out.println("Tamanio; " + getSize(archivos[i]));
			System.out.println("Extension: " + getExtension(archivos[i]) );
		}
		System.out.println("se leyeron: " + archivos.length + "imagenes");
		System.out.println("Terminado");
    }
    
    //copiado del tutorial de FileChooser
    public String getExtension(File f) {
        String ext = null;
        String s = f.getName();
        int i = s.lastIndexOf('.');

        if (i > 0 &&  i < s.length() - 1) {
            ext = s.substring(i+1).toLowerCase();
        }
        return ext;
    }    
    
    public String getSize(File img)
    {
    	BufferedImage temp = null;
    	try {
			temp = ImageIO.read(img);
		} catch(IOException e) {
			e.printStackTrace();
		}
		if(temp == null)
			return "No size";
		else
			return temp.getWidth() + "x" + temp.getHeight();
    }
    
	public static void main(String[] args)
	{
		LectorDir frame = new LectorDir();
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setLocationRelativeTo(null); //solo funciona con el JDK 1.4 en adelante
		frame.setVisible(true);
		frame.abrir();
	}    
}

//FileFilter para que solo recoja los archivos de imagenes
class ImageFilter implements FileFilter
{	
	public boolean accept(File file) {
		String name = file.getName().toLowerCase();		
		if( name.endsWith(".gif") || name.endsWith(".jpeg") ||
            name.endsWith(".jpg") || name.endsWith(".png"))
			return true;
		else
			return false;
	}
}